// pages/settings/settings.js
const { userPreferences, searchHistory, cache, getStorageInfo } = require('../../utils/storage.js')

Page({
  data: {
    // 搜索类型选项
    searchTypeOptions: [
      { value: 'code', name: '券码搜索' },
      { value: 'merchant', name: '商家搜索' }
    ],
    defaultSearchTypeIndex: 0,
    autoSave: true,
    showTips: true,
    storageInfo: null
  },

  onLoad() {
    this.loadSettings()
    this.loadStorageInfo()
  },

  onShow() {
    // 每次显示时更新存储信息
    this.loadStorageInfo()
  },

  // 加载设置
  loadSettings() {
    const preferences = userPreferences.get()
    
    // 设置默认搜索类型索引
    const defaultSearchType = preferences.defaultSearchType || 'code'
    const typeIndex = this.data.searchTypeOptions.findIndex(item => item.value === defaultSearchType)
    
    this.setData({
      defaultSearchTypeIndex: typeIndex >= 0 ? typeIndex : 0,
      autoSave: preferences.autoSave !== false, // 默认为true
      showTips: preferences.showTips !== false // 默认为true
    })
  },

  // 加载存储信息
  loadStorageInfo() {
    const info = getStorageInfo()
    this.setData({
      storageInfo: info
    })
  },

  // 默认搜索类型改变
  onDefaultSearchTypeChange(e) {
    const index = parseInt(e.detail.value)
    const selectedType = this.data.searchTypeOptions[index]
    
    this.setData({
      defaultSearchTypeIndex: index
    })
    
    // 保存到偏好设置
    userPreferences.setValue('defaultSearchType', selectedType.value)
    
    wx.showToast({
      title: '设置已保存',
      icon: 'success',
      duration: 1500
    })
  },

  // 自动保存搜索历史开关
  onAutoSaveChange(e) {
    const value = e.detail.value
    this.setData({
      autoSave: value
    })
    
    userPreferences.setValue('autoSave', value)
    
    wx.showToast({
      title: value ? '已开启自动保存' : '已关闭自动保存',
      icon: 'success',
      duration: 1500
    })
  },

  // 显示使用提示开关
  onShowTipsChange(e) {
    const value = e.detail.value
    this.setData({
      showTips: value
    })
    
    userPreferences.setValue('showTips', value)
    
    wx.showToast({
      title: value ? '已开启使用提示' : '已关闭使用提示',
      icon: 'success',
      duration: 1500
    })
  },

  // 清空搜索历史
  clearSearchHistory() {
    wx.showModal({
      title: '确认清空',
      content: '确定要清空所有搜索历史吗？此操作不可恢复。',
      success: (res) => {
        if (res.confirm) {
          searchHistory.clear()
          this.loadStorageInfo() // 更新存储信息
          wx.showToast({
            title: '搜索历史已清空',
            icon: 'success'
          })
        }
      }
    })
  },

  // 清空缓存数据
  clearCache() {
    wx.showModal({
      title: '确认清空',
      content: '确定要清空所有缓存数据吗？这将提高应用性能，但下次访问时需要重新加载数据。',
      success: (res) => {
        if (res.confirm) {
          cache.clearAll()
          this.loadStorageInfo() // 更新存储信息
          wx.showToast({
            title: '缓存数据已清空',
            icon: 'success'
          })
        }
      }
    })
  },

  // 显示关于信息
  showAbout() {
    wx.showModal({
      title: '关于券多多',
      content: '券多多是一款便捷的优惠券搜索小程序，支持券码精确搜索和商家模糊搜索，帮助用户快速找到所需的优惠券信息。\n\n版本：1.0.0\n开发者：券多多团队',
      showCancel: false,
      confirmText: '知道了'
    })
  },

  // 分享
  onShareAppMessage() {
    return {
      title: '券多多设置 - 个性化你的搜索体验',
      path: '/pages/index/index'
    }
  }
})
